package struts2.sample04.chinchirorin;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 三つのサイコロ。
 */
public class ThreeDices {

	/** 三つのサイコロ */
	private Dice[] dices;
	
	/** 役 */
	private Yaku yaku;
	
	/** log */
	private static final Log LOG = LogFactory.getLog(ThreeDices.class);


	/**
	 * コンストラクタ。
	 */
	public ThreeDices(){

		// dicesを生成
		dices = new Dice[3];
		for(int i=0; i<dices.length; i++)
			dices[i] = new Dice();
		
	}

	
	
	/**
	 * サイコロを三つ振る。
	 */
	public Yaku roll(){
		
		// サイコロを振る
		for (Dice dice : dices)
			dice.roll();
		LOG.debug("roll => ["+toString()+"]");
		
		yaku = ChichiroUtils.numsToYaku(getDiceNumbers());
		LOG.debug("yaku => ["+yaku+"]");
		
		return yaku;
	}



	/**
	 * 現在出ているサイコロの目を３つ返す。
	 */
	public int[] getDiceNumbers(){
		int[] result = new int[dices.length];
		
		for(int i=0; i<dices.length; i++){
			result[i] = dices[i].getNumber();
		}
		
		return result;
	}



	public String toString(){
		StringBuffer result = new StringBuffer();
		for (Dice dice : dices) {
			result.append(dice.getNumber()).append(",");
		}
		
		return result.deleteCharAt(result.length()-1).toString();
	}
	
	
	
	public Dice[] getDices(){
		return dices;
	}
}
